    .org 0x0
    .set noat
    .global _start
_start:

    ########## sll/sllv #########

    ori  $1,$0,0x5555        # $1 = 0x5555
    sll  $3,$1,0x0001        # $3 = 0xaaaa
    sll  $4,$1,0x0002        # $4 = 0x00015554

    ori  $1,$0,0x0001        # $1 = 0x0001
    sll  $5,$1,0x001f        # $5 = 0x80000000

    ori  $1,$0,0x0002        # $1 = 0x0002
    ori  $3,$0,0x5555        # $3 = 0x5555
    sllv $6,$3,$1            # $6 = 0x00015554

    ########## srl/srlv #########

    ori  $1,$0,0xaaaa        # $1 = 0xaaaa
    sll  $1,$1,0x0010        # $1 = 0xaaaa0000
    srl  $2,$1,0x0001        # $2 = 0x55550000
    srl  $3,$1,0x0002        # $3 = 0x2aaa8000

    srl  $5,$5,0x001f        # $5 = 0x0001

    ori  $2,$0,0x0002        # $2 = 0x0002
    srlv $6,$1,$2            # $6 = 0x2aaa8000

    ########## sra/srav #########

    ori  $1,$0,0x5555        # $1 = 0x5555
    sll  $1,$1,0x0010        # $1 = 0x55550000
    sra  $2,$1,0x0001        # $2 = 0x2aaa8000

    ori  $1,$0,0xaaaa        # $1 = 0xaaaa
    sll  $1,$1,0x0010        # $1 = 0xaaaa0000
    sra  $2,$1,0x0001        # $2 = 0xd5550000

    sll  $5,$5,0x001f        # $5 = 0x80000000
    sra  $5,$5,0x001f        # $5 = 0xffffffff

    ori  $1,$0,0x5555        # $1 = 0x5555
    sll  $1,$1,0x0010        # $1 = 0x55550000
    ori  $3,$0,0x0002        # $3 = 0x0002
    srav $1,$1,$3            # $1 = 0x15554000

    ori  $1,$0,0xaaaa        # $1 = 0xaaaa
    sll  $1,$1,0x0010        # $1 = 0xaaaa0000
    srav $3,$1,$3            # $3 = 0xeaaa8000

    ori  $1,$0,0x001f        # $1 = 0x001f
    ori  $5,$0,0x0001        # $5 = 0x0001
    sll  $5,$5,0x001f        # $5 = 0x80000000
    srav $5,$5,$1            # $5 = 0xffffffff


